Intro to Lean and Agile

for science teams

Eli Holmes
Northwest Fisheries Science Center, NOAA
NMFS Open Science

Fish 549 March 3, 2023

Today’s Plan

  • A Kaizen (aka continuous improvement) group game!
  • Learn about the core ideas of “lean” and “Agile” for team projects
  • Intro to the basics of Scrum Sprints
  • Demo of Scrum Sprint on GitHub project boards

What is agile?

A lightweight workflow structure for software development which is characterized by 4 key features.

Term is traced back to the 2001 Agile Manifesto, but the ideas are much earlier and broader. Very related to Lean Methodology (aka Toyota Way).

Important

Agile methods are ubiquitous in software developement. This is how modern teams work because it Drives Creation and Completion

Four elements

  • Breaking work into chunks
  • Reflection and planning after each chunk
  • Radically anti-hierarchical team structure
  • Regular facetime
  • Respect for the individual (learning focus)
  • Early and regular end-user feedback

Iterative Cycles

A key principle: dividing work into 10-30 day chunks with plan and review (or check) elements

Self-organizing teams


Adopt habits that organically improve team flow and efficiency.


Task boards

  • visualize your workflow
  • team awareness
  • encourages cycles of work
  • helps team not waste time on unimportant things

Facetime

  • short daily check-ins, aka “stand-ups”
  • co-working, group or often paired

Task boards

Why use a task board?

  • team awareness fundamentally changes the team dynamic

  • forces work to be iterative and incremental

  • helps team define a minimally complete chunk of work that can be reviewed

  • quickly reveals bottlenecks and barriers

Keeping the task board up to date

Keeping the team task board fresh won’t happen by itself. Everyone get pulled into their own rabbit hole and then team becomes silo-ed.

Daily Standup

time-boxed 15 minutes

what I did yesterday, what I plan to do today, any barriers

a designated team facilitator runs this

done around the task board

can be done asynchronously but much better if it is live

gets the team in flow

Scrum

Most popular and widely used method in software development, but not restricted to software at all.

Formalizes the workflow cycles and events

Scrum Roles and Artifacts

Roles

  • Product Owner: Job is to decide what the group is doing and curate the backlog of tasks
  • Scrum master: Facilitator and coach the team
  • Developers: Do the tasks

Artifacts

  • Backlog: All the planned tasks in various stages of ready
  • Sprint Backlog: Things to be completed in current sprint
  • Product Increment: What you will complete in this sprint. Needs to be something you can demo or present

Sprint Cycle

Product Owner Works on the backlog and gets tasks ready for next sprint.

Scrum Master

  • Day 1: Facilitates planning mtg
  • Day 8-28:
    • Runs daily standups.
    • Helps team members with barriers
    • Works with product owner
  • Last day: Facilitate Retrospective meeting

Team

  • Day 1: Sprint Planning
  • Day 8-28: Work on tasks with daily standups
  • 2 days before end of sprint: Sprint Review Show work to “customer”1
  • Last day: Retrospective Team reflects on how their process of work did and picks one thing to do better

1 In a science context, this might be a presentation outside of the team. Formal enough that you need to do a good job.

I left out some big parts of Scrum

This is a Lean/Agile/Kaizen approach

  • radically anti-hierarchical team structure
  • importance of intentionality
  • rethinking of human agency within team structures
  • radical candor and authenticity within teams

Velocity

Scrum in software dev is used to speed up development cycles. Velocity and measuring the size of tasks is a key part of Scrum in this context.

Videos to learn more

Scrum

These cover the basic elements

5 minute intro to Scrum Basic Structure of Scrum

12 minute intro to Scrum Product development perspective

LabScrum